#include "instruct.h"
#include "register.h"
#include "def.h"
#include <stdio.h>
int jmpIsRun(char opt){
	if(opt==JMP){
		return 5;
	}else if(opt==JE||opt==JNE||opt==JG||opt==JNG||opt==JL||opt==JNL){
		return 5;
	}
	return 0;
}
int jmpParseRun(Register*R){
	char*code=R->code;
	int pc=R->RPC;
    char opt=code[pc];
	int num=byte2int(code[pc+4],code[pc+3],code[pc+2],code[pc+1]);
	if(opt==JMP){
		R->RPC=num;
	}else if(opt==JE){
		int temp=R->RCX;
		if(temp==0){
			R->RPC=num;
		}else{
			R->RPC+=jmpIsRun(opt);
		}
	}else if(opt==JNE){
		int temp=R->RCX;
		if(temp!=0){
			R->RPC=num;
		}else{
			R->RPC+=jmpIsRun(opt);
		}
	}else if(opt==JG){
		int temp=R->RCX;
		if(temp>0){
			R->RPC=num;
		}else{
			R->RPC+=jmpIsRun(opt);
		}
	}else if(opt==JNG){
		int temp=R->RCX;
		if(temp<=0){
			R->RPC=num;
		}else{
			R->RPC+=jmpIsRun(opt);
		}
	}else if(opt==JL){
		int temp=R->RCX;
		if(temp<0){
			R->RPC=num;
		}else{
			R->RPC+=jmpIsRun(opt);
		}
	}else if(opt==JNL){
		int temp=R->RCX;
		if(temp>=0){
			R->RPC=num;
		}else{
			R->RPC+=jmpIsRun(opt);
		}
	}
	
	return 0;
}
